/**
* 版权声明：厦门睿商网络科技有限公司 版权所有 违者必究
* 日    期：2020-03-04
*/
package com.rzico.basics.service;

import com.rzico.base.BaseMapper;
import com.rzico.base.impl.BaseServiceImpl;
import com.rzico.basics.entity.Ad;
import com.rzico.basics.entity.AdTag;
import com.rzico.basics.entity.Tag;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.rzico.basics.mapper.AdMapper;
import org.springframework.transaction.annotation.Transactional;

/**
 * <pre>
 * 设计器业务类
 * </pre>
 *
 * @author Rzico Boot
 * @version 1.0
 */
@Service
public class AdService extends BaseServiceImpl<Ad, String> {

    @Autowired
    private AdMapper adMapper;
    @Autowired
    private AdTagService adTagService;

    @Override
    public BaseMapper<Ad, String> getMapper() {
        return adMapper;
    }

    @Transactional(rollbackFor = Exception.class)
    public int save(Ad ad,Long[] tagIds) {
        int affectCount = super.insertUseGeneratedKeys(ad);
        if (tagIds!=null) {
            for (Long tagId : tagIds) {
                AdTag adTag = new AdTag();
                adTag.setAds(ad.getId());
                adTag.setTags(tagId);
                adTagService.insert(adTag);
            }
        }
        return affectCount;
    }

    @Transactional(rollbackFor = Exception.class)
    public int update(Ad ad,Long[] tagIds) {
        int affectCount = super.updateByPrimaryKeySelective(ad);
        if (tagIds!=null) {
            AdTag adTag = new AdTag();
            adTag.setAds(ad.getId());
            adTagService.delete(adTag);
            for (Long tagId : tagIds) {
                adTag = new AdTag();
                adTag.setAds(ad.getId());
                adTag.setTags(tagId);
                adTagService.insert(adTag);
            }
        }
        return affectCount;
    }

}
